;--- Header ;Name = Str: Name of cheat ;Author = Str: Author of cheat ;--- Recognize file ;Filename = Str: Filename (if exact, allows wildcards) ;Size = Val: Size of file (if exact) ;Match = Str: String to match (may be given in the form of $xxxxxx if unprintable characters) ;Position = Val: Set position for match ;And: The following must also be true ;Or: The previous or the following must be true ;End: End file recognizing ;--- Options ;Option = Str: Name of option (this specifies the beginning of a new option - maximum number of options is 48) ;Info = Str: Info to this option ;Address = Val: Address to change ;Length = Val: Length of value (1=byte, 2=word, 4=long word) ;Value = Val: Type of value (1=Positive value 2=Value 3=String 4=String value 5=Dec value/Speris 6=Predefined value 7=Predefined string by value) ;Min = Val: Minimum value ;Max = Val: Maximum value ;ValueName.X = Str: Name of the chosen value (X must be between 0 and 255) ;PreValue.X = Val: Predefined value (X must be between 0 and 15) ;PreString.X = Str: Predefined string (X must be between 0 and 15) ;--- Additional commands ;Base = Val: This base value is added to all addresses ;Group = Str: Name of the following group ;Do = Val: Begin loop (number of times to loop, must be between 2 and 16 for first group and 2 and 8 for subgroup) ;Step = Val: Size of each step in bytes ;Loop: Return to Do statement (loop the code inbetween) ;Read = Val (0-9): Read data (Length = 1 for byte etc.) into variable V ;--- Notes ;Math is done straight from left to right. This means that the following line: ;Address = 37+V0*4-V1/3 ;will be read and performed as: ;Address = (((37+V0)*4)-V1)/3 ;You would probably want the above line to be calculated as: ;Address = 37+(V0*4)-(V1/3) ;This could be achieved by something like: ;Address = V0*4+37*3-V1/3